Add linux-aarch64 kernel compatibility shim - #222
Conversation
|
Native ARM64 validation: the cleaned package stack built successfully in the combined PR integration run. The run failed only in the later repository-database publishing step owned by #223, after all three requested packages had been produced. Build evidence: https://github.com/birkskyum/omarchy-pkgs/actions/runs/33118509188 |
|
I think one piece of the shim this branch retires is still needed. Zesko !64 lets If your Yoga test ran with the shim still installed from the integration branch, that would explain it working. Two fixes I can see. Keep the shim here with its retirement note, or have this patch also point mkinitcpio at |
|
Good catch. Confirmed: MR 64 discovers the module directory but mkinitcpio still cannot find Arch Linux ARM's /boot/Image. I restored your three shim commits with authorship intact and added an ownership compatibility patch after MR 64, because the shim-written pkgbase is not package-owned. The PR is back in draft until the corrected exact stack passes a native ARM build. |
|
Corrected native ARM validation passed, including linux-aarch64-pkgbase-shim 1-3, limine-mkinitcpio-hook 1.37.1-4, repository database creation, verification, and artifact upload: https://github.com/birkskyum/omarchy-pkgs/actions/runs/33122253609 |
ae947e0 to
adbec9d
Compare
Arch Linux ARM's kernel packages install the kernel as /boot/Image and ship
no usr/lib/modules/<ver>/{pkgbase,vmlinuz}, which is how mkinitcpio and
limine-entry-tool find kernels. One pacman hook, ordered 85- so it runs
before 90-mkinitcpio-install, writes both files into every package-owned
modules directory that lacks pkgbase; the usual hook then builds the UKI and
writes the Limine entry. It also covers kernels already present when the
shim itself is installed, cleans up the leftover directories of removed
kernels, and never touches a directory that has pkgbase, so it retires by
removal once archlinuxarm/PKGBUILDs#2215 (or its successor) lands.
Added to the aarch64 workflow's ISO package set.
…he 90 hook is masked omarchy-iso's installer points 90-mkinitcpio-install.hook at /dev/null in the target during the chroot phase and runs limine-update itself afterwards. When the shim is installed in that phase it writes pkgbase and vmlinuz and would otherwise start a UKI build that finalize_limine_boot throws away.
The aarch64 repo build only rebuilds packages whose version moved, so the previous script fix never reached the repository.
adbec9d to
df73713
Compare
Summary
Adds
linux-aarch64-pkgbase-shimso mkinitcpio and Limine can use Arch Linux ARM kernels installed as/boot/Image.pkgbasemetadata andvmlinuz.Why the shim remains needed
Limine can discover a kernel module directory without
pkgbase, but mkinitcpio still needs a discoverable kernel image. The shim supplies/usr/lib/modules/<version>/vmlinuzuntil the ALARM kernel package provides it directly.The existing aarch64 Limine/GraalVM/Gradle packaging is already on
masterand is not part of this PR.Provenance and validation
Jimmy Van Veen authored the original shim in
JimmayVV/omarchy-pkgs@snapdragon; original authorship is preserved.ARM64 regression tests pass for initial installation, same-version refresh, permissions, rebuild suppression, masked hooks, ownership of either metadata file, failed copies, and removal with DKMS leftovers. The existing CI job now runs them. A native ARM64
makepkg --nodepsbuild of version 1-3, archive inspection, ShellCheck and whitespace checks also pass.The September 6 pinned integration build built and published the shim and firmware extractor successfully.
The latest fixes were not deployed to the physical Yoga. Consumers are omacom/omarchy#8672 and omacom/omarchy-iso#129.